-- @owner: @nanyang12
-- @date: 2025/4/1
-- @testpoint:使用postgresql风格创建同名参数数量不同的重载函数，language为pltsql

--连接D库
@conn PrimaryDbDmode;
--创建插件
--create extension shark;
--创建2个同名函数，参数数量不一样，language为pltsql
drop function if exists shark_0026_01(int);
CREATE OR REPLACE FUNCTION shark_0026_01(input_int INT)
RETURNS INT
LANGUAGE pltsql
AS $$
DECLARE
 -- 声明一个变量用于存储返回值
 result INT;
BEGIN
 -- 将输入参数赋值给结果变量
 result := input_int;
 -- 返回结果变量
 RETURN result;
END;
$$;
/
--调用函数
select shark_0026_01(1);
--创建同名函数，参数数量一样，language为pltsql
CREATE FUNCTION shark_0026_01(input_int1 INT, input_int2 INT)
RETURNS INT
LANGUAGE pltsql
AS $$
DECLARE
 -- 声明一个变量用于存储返回值
 result INT;
BEGIN
 -- 计算两个输入参数的和并赋值给结果变量
 result := input_int1 + input_int2;
 -- 返回结果变量
 RETURN result;
END;
$$;
/
--调用函数
select shark_0026_01(1,2);
--查询
select proname,pronargs from pg_proc where proname ='shark_0026_01';
select l.lanname from pg_language l join pg_proc p on l.oid = p.prolang and p.proname in('shark_0026_01');
--清理环境
drop function if exists shark_0026_01(int);
drop function shark_0026_01(input_int1 int,input_int2 int);
